A very long instruction word (VLIW) processor or wide-issue processor is a processor operable to execute program instructions in parallel, i.e., to start execution of more than one instruction at the same time.
For many applications, such as image or video processing or other data processing applications, massive parallel execution of instructions efficiently reduces processing time. Parallel processing, in comparison to serial processing, usually requires more hardware resources such as execution units or processing cores arranged to process instructions independently from each other. It may also require more memory resources, e.g., random access memory, cache and registers, for storing processed data, as well as for storing and addressing an increased amount of instructions, i.e., an extended instruction set. In other words, the memory footprint or amount of memory a program occupies when being executed may increase.
Each instruction of an instruction set of a processor instructs the processor to execute a corresponding operation and is encoded using an opcode that specifies the operation to be performed, often combined with specifiers or addresses of locations of operands or data to be used when executing the operation.
An extended instruction set may, for example, be encoded using an enlarged encoding space, i.e., by uniformly providing more bits for encoding each instruction to implement a “full” encoding scheme. This may, for example, be useful in case of evenly distributed probabilities for most or all instructions to occur when executing a typical application of the particular processor. Other instruction encoding schemes may contain a trade off between size of encoded instructions and, for example, the amount of operands encoded within an instruction or orthogonality of operands.
In U.S. Pat. No. 5,922,065, a processor utilizing a template field for encoding instruction sequences in a wide-word format is shown. The instructions are encoded in 128 bit wide bundles, wherein it is defined which execution unit type of a processor will execute the particular instruction to allow simultaneous execution of sequential instructions.